#include<bits/stdc++.h>
using namespace std;
const int N=(1<<20)+5;char ch[2];
int q,V=N-5,mn[N<<1],mx[N<<1],tr[N<<1];
multiset<int> s[2][N],ma,mb;
int l,r,X,Y,t,p;
void update(int o){
	if(l==r){int v=(t?1:-1)*Y,x=X;
		if(p==1)s[t][x].insert(v);
		else s[t][x].erase(s[t][x].find(v));
		if(s[0][x].size())mx[o]=-*s[0][x].begin();else mx[o]=mx[0];
		if(s[1][x].size())mn[o]=*s[1][x].begin();else mn[o]=mn[0];
		return ;
	}
	int mid=(l+r)>>1;
	if(X<=mid)l=l,r=mid,update(o<<1);
	else l=mid+1,r=r,update(o<<1|1);
	mn[o]=min(mn[o<<1],mn[o<<1|1]),mx[o]=max(mx[o<<1],mx[o<<1|1]);
	tr[o]=min(min(tr[o<<1],tr[o<<1|1]),mn[o<<1|1]-mx[o<<1]+1); 
}
int read(){int x=0,f=1;char ch=getchar();
	while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
	while(ch>='0'&&ch<='9')x=(x<<1)+(x<<3)+ch-'0',ch=getchar();
	return x*f;
}
void write(int x){
	if(x<0)return putchar('-'),write(-x);
	if(x<10)return putchar(x^48),void();
	write(x/10),putchar((x%10)^48);
}
int main(){
	freopen("stone.in","r",stdin);
	freopen("stone.out","w",stdout);
	memset(mn,0x3f,sizeof(mn)),memset(tr,0x3f,sizeof(tr)),memset(mx,-0x3f,sizeof(mx));
	scanf("%d",&q);
	for(int i=1,x,y;i<=q;i++){
		scanf("%s",ch+1),x=read(),y=read(),y--;
		l=1,r=V,X=x,Y=y,t=1,p=ch[1]=='A',update(1);
		l=1,r=V,X=y,Y=x,t=0,p=ch[1]=='A',update(1);
		if(ch[1]=='A'){
			ma.insert(y),mb.insert(-x);
		}else {
			ma.erase(ma.find(y)),mb.erase(mb.find(-x));
		}
		if(tr[1]<N)write(tr[1]),puts("");
		else {
			x=*ma.begin(),y=-*mb.begin();
			int xl=-*s[0][x].begin(),yr=*s[1][y].begin();
			write(max(x,yr)-min(xl,y)+1),puts("");
		}
	}
	return 0;
}
/*
5
A 1 5
A 2 7
A 4 6
A 6 8
R 4 6
*/
